{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Normalisation - Standarisation\n",
    "\n",
    "We saw in previous lectures in section 3 of this course, that the magnitude of the variables affects different machine learning algorithms for different reasons. In this section, I will cover a few standard ways of setting the magnitude of the variables to the same range of values.\n",
    "\n",
    "\n",
    "#### Normalisation\n",
    "\n",
    "One method utilised to bring all the variables to a more homogeneous scale is normalisation. Normalisation is synonym of centering the distribution. This means subtracting the mean of the variable to each observation. This procedure will \"center\" the new distribution at zero (the new mean of the variable will now be zero).\n",
    "\n",
    "#### Standarisation\n",
    "\n",
    "Standarisation is also used to bring all the variables to a similar scale. Standarisation means centering the variable at zero, and standarising the variance at 1. The procedure involves subtracting the mean of each observation and then dividing by the standard deviation:\n",
    "\n",
    "z = (x - x_mean) /  std\n",
    "\n",
    "For an overview of the different scaling methods check:\n",
    "http://scikit-learn.org/stable/auto_examples/preprocessing/plot_all_scaling.html#sphx-glr-auto-examples-preprocessing-plot-all-scaling-py\n",
    "\n",
    "Let's demonstrate the procedure of standarisation on the titanic dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "from sklearn.metrics import roc_auc_score\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "% matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Age</th>\n",
       "      <th>Fare</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>22.0</td>\n",
       "      <td>7.2500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>38.0</td>\n",
       "      <td>71.2833</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>26.0</td>\n",
       "      <td>7.9250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>53.1000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>35.0</td>\n",
       "      <td>8.0500</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Survived  Pclass   Age     Fare\n",
       "0         0       3  22.0   7.2500\n",
       "1         1       1  38.0  71.2833\n",
       "2         1       3  26.0   7.9250\n",
       "3         1       1  35.0  53.1000\n",
       "4         0       3  35.0   8.0500"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# load the numerical variables of the Titanic Dataset\n",
    "\n",
    "data = pd.read_csv('titanic.csv', usecols = ['Pclass', 'Age', 'Fare', 'Survived'])\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Age</th>\n",
       "      <th>Fare</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>714.000000</td>\n",
       "      <td>891.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>0.383838</td>\n",
       "      <td>2.308642</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>32.204208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.486592</td>\n",
       "      <td>0.836071</td>\n",
       "      <td>14.526497</td>\n",
       "      <td>49.693429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.420000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>20.125000</td>\n",
       "      <td>7.910400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>28.000000</td>\n",
       "      <td>14.454200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>31.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>512.329200</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Survived      Pclass         Age        Fare\n",
       "count  891.000000  891.000000  714.000000  891.000000\n",
       "mean     0.383838    2.308642   29.699118   32.204208\n",
       "std      0.486592    0.836071   14.526497   49.693429\n",
       "min      0.000000    1.000000    0.420000    0.000000\n",
       "25%      0.000000    2.000000   20.125000    7.910400\n",
       "50%      0.000000    3.000000   28.000000   14.454200\n",
       "75%      1.000000    3.000000   38.000000   31.000000\n",
       "max      1.000000    3.000000   80.000000  512.329200"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# let's have a look at the values of those variables to get an idea of the magnitudes\n",
    "data.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The different variables present different value ranges, therefore different magnitudes. Not only the minimum and maximum values are different, but they also spread over ranges of different widths."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Survived      0\n",
       "Pclass        0\n",
       "Age         177\n",
       "Fare          0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# let's look at missing data\n",
    "\n",
    "data.isnull().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Age contains missing information, so I will fill those observations with the median in the next cell."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((623, 3), (268, 3))"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# let's separate into training and testing set\n",
    "X_train, X_test, y_train, y_test = train_test_split(data[['Pclass', 'Age', 'Fare']],\n",
    "                                                    data.Survived, test_size=0.3,\n",
    "                                                    random_state=0)\n",
    "X_train.shape, X_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# let's fill first the missing data\n",
    "\n",
    "X_train.Age.fillna(X_train.Age.median(), inplace=True)\n",
    "X_test.Age.fillna(X_train.Age.median(), inplace=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Standarisation\n",
    "\n",
    "StandardScaler from scikit-learn removes the mean and scales the data to unit variance. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# standarisation: we use the StandardScaler from sklearn\n",
    "\n",
    "scaler = StandardScaler() # create an object\n",
    "X_train_scaled = scaler.fit_transform(X_train) # fit the scaler to the train set, and then transform it\n",
    "X_test_scaled = scaler.transform(X_test) # transform the test set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "means (Pclass, Age and Fare):  [  4.98976640e-17   1.16903099e-16   5.41746067e-17]\n",
      "std (Pclass, Age and Fare):  [ 1.  1.  1.]\n"
     ]
    }
   ],
   "source": [
    "#let's have a look at the scaled training dataset: mean and standard deviation\n",
    "\n",
    "print('means (Pclass, Age and Fare): ', X_train_scaled.mean(axis=0))\n",
    "print('std (Pclass, Age and Fare): ', X_train_scaled.std(axis=0))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As expected, the mean of each variable is now around zero and the standard deviation is set to 1. Thus, all the variable  values lie within the same range."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Min values (Pclass, Age and Fare):  [-1.5325562  -2.23351124 -0.67314402]\n",
      "Max values (Pclass, Age and Fare):  [ 0.84844757  3.86209655  9.95192344]\n"
     ]
    }
   ],
   "source": [
    "# let's look at the transformed min and max values\n",
    "\n",
    "print('Min values (Pclass, Age and Fare): ', X_train_scaled.min(axis=0))\n",
    "print('Max values (Pclass, Age and Fare): ', X_train_scaled.max(axis=0))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "However, the minimum and maximum values vary according to how spread the variable was to begin with and is highly influenced by the presence of outliers. We observed in previous lectures that the variable Fare has a few extreme outliers, that is, people that paid extraordinarily high Fares. Those observations would drive the value of the maximum value far away from the unit variance (a value of 9.9 in this case)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([  30.,   10.,   10.,   19.,   52.,   67.,   56.,  183.,   56.,\n",
       "          34.,   28.,   25.,   18.,   10.,   10.,    7.,    3.,    3.,\n",
       "           1.,    1.]),\n",
       " array([-2.23351124, -1.92873085, -1.62395046, -1.31917007, -1.01438968,\n",
       "        -0.70960929, -0.4048289 , -0.10004851,  0.20473188,  0.50951227,\n",
       "         0.81429266,  1.11907305,  1.42385344,  1.72863383,  2.03341422,\n",
       "         2.33819461,  2.642975  ,  2.94775539,  3.25253577,  3.55731616,\n",
       "         3.86209655]),\n",
       " <a list of 20 Patch objects>)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb47c31a9b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# let's look at the distribution of the transformed variable Age\n",
    "\n",
    "plt.hist(X_train_scaled[:,1], bins=20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([ 388.,  118.,   54.,   27.,   10.,   12.,    1.,    0.,    7.,\n",
       "           1.,    3.,    0.,    0.,    0.,    0.,    0.,    0.,    0.,\n",
       "           0.,    2.]),\n",
       " array([-0.67314402, -0.14189064,  0.38936273,  0.9206161 ,  1.45186948,\n",
       "         1.98312285,  2.51437622,  3.04562959,  3.57688297,  4.10813634,\n",
       "         4.63938971,  5.17064309,  5.70189646,  6.23314983,  6.76440321,\n",
       "         7.29565658,  7.82690995,  8.35816333,  8.8894167 ,  9.42067007,\n",
       "         9.95192344]),\n",
       " <a list of 20 Patch objects>)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD8CAYAAAB5Pm/hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEZ1JREFUeJzt3V2MVOd9x/HvL9i189bGlreIAClEIq1wpOBqRd26qty4\nqakdBefGwlIsVFkiF9Rxqkgp5CbJBZIr5fWitkRsN6hx7aC8yChxkxLiKopUmawd4hhsZBRwgGLY\nvDV2L0jB/17scTKhwM7uzHjsh+9HWs1znvM8c/5HwG8PZ86ck6pCktSu14y7AEnSaBn0ktQ4g16S\nGmfQS1LjDHpJapxBL0mNM+glqXEGvSQ1zqCXpMZdNO4CAK644opatmzZuMuQpFeVxx577CdVNTHb\nuL6DPskCYAo4WlXvTnI58EVgGXAIuLmqft6N3QzcBpwGPlBV3zzfey9btoypqal+S5EkAUme7Wfc\nXE7d3AE81bO8CdhVVSuAXd0ySVYC64ArgTXAXd0vCUnSGPQV9EmWADcC9/R0rwW2de1twE09/Q9W\n1cmqOggcAFYPp1xJ0lz1e0T/GeDDwIs9fQur6ljXfg5Y2LUXA4d7xh3p+n5Lkg1JppJMTU9Pz61q\nSVLfZg36JO8GTlTVY+caUzP3Op7T/Y6ramtVTVbV5MTErJ8lSJLmqZ8PY68B3pPkBuBS4HeTfAE4\nnmRRVR1Lsgg40Y0/Ciztmb+k65MkjcGsR/RVtbmqllTVMmY+ZP12Vb0P2AGs74atBx7q2juAdUku\nSbIcWAHsHnrlkqS+DHId/Z3A9iS3Ac8CNwNU1d4k24F9wClgY1WdHrhSSdK85JXwKMHJycnyOnpJ\nmpskj1XV5GzjvAWCJDXuFXELhEEt2/T1ec89dOeNQ6xEkl55PKKXpMYZ9JLUOINekhpn0EtS4wx6\nSWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS1DiDXpIaZ9BLUuMMeklqnEEvSY0z6CWpcbMGfZJLk+xO\n8oMke5N8vOv/WJKjSfZ0Pzf0zNmc5ECS/UmuH+UOSJLOr58Hj5wE3llVLyS5GPhukn/r1n26qj7R\nOzjJSmYeIn4l8GbgW0ne5nNjJWk8Zj2irxkvdIsXdz/ne9DsWuDBqjpZVQeBA8DqgSuVJM1LX+fo\nkyxIsgc4Aeysqke7VbcneSLJfUku6/oWA4d7ph/p+iRJY9BX0FfV6apaBSwBVid5O3A38FZgFXAM\n+ORcNpxkQ5KpJFPT09NzLFuS1K85XXVTVb8AHgHWVNXx7hfAi8Dn+M3pmaPA0p5pS7q+M99ra1VN\nVtXkxMTE/KqXJM2qn6tuJpK8qWu/FngX8HSSRT3D3gs82bV3AOuSXJJkObAC2D3csiVJ/ernqptF\nwLYkC5j5xbC9qr6W5F+SrGLmg9lDwPsBqmpvku3APuAUsNErbiRpfGYN+qp6ArjqLP23nmfOFmDL\nYKVJkobBb8ZKUuMMeklqnEEvSY0z6CWpcQa9JDXOoJekxhn0ktQ4g16SGmfQS1LjDHpJapxBL0mN\nM+glqXEGvSQ1zqCXpMYZ9JLUOINekhpn0EtS4wx6SWpcPw8HvzTJ7iQ/SLI3yce7/suT7EzyTPd6\nWc+czUkOJNmf5PpR7oAk6fz6OaI/Cbyzqt4BrALWJLka2ATsqqoVwK5umSQrgXXAlcAa4K7uweKS\npDGYNehrxgvd4sXdTwFrgW1d/zbgpq69Fniwqk5W1UHgALB6qFVLkvrW1zn6JAuS7AFOADur6lFg\nYVUd64Y8Byzs2ouBwz3Tj3R9kqQx6Cvoq+p0Va0ClgCrk7z9jPXFzFF+35JsSDKVZGp6enouUyVJ\nczCnq26q6hfAI8ycez+eZBFA93qiG3YUWNozbUnXd+Z7ba2qyaqanJiYmE/tkqQ+9HPVzUSSN3Xt\n1wLvAp4GdgDru2HrgYe69g5gXZJLkiwHVgC7h124JKk/F/UxZhGwrbty5jXA9qr6WpL/BLYnuQ14\nFrgZoKr2JtkO7ANOARur6vRoypckzWbWoK+qJ4CrztL/U+C6c8zZAmwZuDpJ0sD8ZqwkNc6gl6TG\nGfSS1DiDXpIaZ9BLUuMMeklqnEEvSY0z6CWpcQa9JDXOoJekxhn0ktQ4g16SGmfQS1LjDHpJapxB\nL0mNM+glqXEGvSQ1zqCXpMb183DwpUkeSbIvyd4kd3T9H0tyNMme7ueGnjmbkxxIsj/J9aPcAUnS\n+fXzcPBTwIeq6vEkbwQeS7KzW/fpqvpE7+AkK4F1wJXAm4FvJXmbDwiXpPGY9Yi+qo5V1eNd+3ng\nKWDxeaasBR6sqpNVdRA4AKweRrGSpLmb0zn6JMuAq4BHu67bkzyR5L4kl3V9i4HDPdOOcJZfDEk2\nJJlKMjU9PT3nwiVJ/ek76JO8Afgy8MGq+iVwN/BWYBVwDPjkXDZcVVurarKqJicmJuYyVZI0B30F\nfZKLmQn5+6vqKwBVdbyqTlfVi8Dn+M3pmaPA0p7pS7o+SdIY9HPVTYB7gaeq6lM9/Yt6hr0XeLJr\n7wDWJbkkyXJgBbB7eCVLkuain6turgFuBX6YZE/X9xHgliSrgAIOAe8HqKq9SbYD+5i5YmejV9xI\n0vjMGvRV9V0gZ1n18HnmbAG2DFCXJGlI/GasJDXOoJekxhn0ktQ4g16SGmfQS1LjDHpJapxBL0mN\nM+glqXEGvSQ1zqCXpMYZ9JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalxBr0kNa6fZ8YuTfJIkn1J\n9ia5o+u/PMnOJM90r5f1zNmc5ECS/UmuH+UOSJLOr58j+lPAh6pqJXA1sDHJSmATsKuqVgC7umW6\ndeuAK4E1wF1JFoyieEnS7GYN+qo6VlWPd+3ngaeAxcBaYFs3bBtwU9deCzxYVSer6iBwAFg97MIl\nSf2Z0zn6JMuAq4BHgYVVdaxb9RywsGsvBg73TDvS9UmSxqDvoE/yBuDLwAer6pe966qqgJrLhpNs\nSDKVZGp6enouUyVJc9BX0Ce5mJmQv7+qvtJ1H0+yqFu/CDjR9R8FlvZMX9L1/Zaq2lpVk1U1OTEx\nMd/6JUmz6OeqmwD3Ak9V1ad6Vu0A1nft9cBDPf3rklySZDmwAtg9vJIlSXNxUR9jrgFuBX6YZE/X\n9xHgTmB7ktuAZ4GbAapqb5LtwD5mrtjZWFWnh165JKkvswZ9VX0XyDlWX3eOOVuALQPUJUkaEr8Z\nK0mNM+glqXEGvSQ1zqCXpMYZ9JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS\n1DiDXpIaZ9BLUuMMeklqnEEvSY0z6CWpcf08HPy+JCeSPNnT97EkR5Ps6X5u6Fm3OcmBJPuTXD+q\nwiVJ/enniP7zwJqz9H+6qlZ1Pw8DJFkJrAOu7ObclWTBsIqVJM3drEFfVd8Bftbn+60FHqyqk1V1\nEDgArB6gPknSgAY5R397kie6UzuXdX2LgcM9Y450fZKkMZlv0N8NvBVYBRwDPjnXN0iyIclUkqnp\n6el5liFJms28gr6qjlfV6ap6Efgcvzk9cxRY2jN0Sdd3tvfYWlWTVTU5MTExnzIkSX2YV9AnWdSz\n+F7gpStydgDrklySZDmwAtg9WImSpEFcNNuAJA8A1wJXJDkCfBS4NskqoIBDwPsBqmpvku3APuAU\nsLGqTo+mdElSP2YN+qq65Szd955n/BZgyyBFSZKGx2/GSlLjDHpJapxBL0mNM+glqXEGvSQ1zqCX\npMYZ9JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalxs97UrHXLNn193nMP3XnjECuRpNHwiF6SGmfQ\nS1LjDHpJapxBL0mNM+glqXGzBn2S+5KcSPJkT9/lSXYmeaZ7vaxn3eYkB5LsT3L9qAqXJPWnnyP6\nzwNrzujbBOyqqhXArm6ZJCuBdcCV3Zy7kiwYWrWSpDmbNeir6jvAz87oXgts69rbgJt6+h+sqpNV\ndRA4AKweUq2SpHmY7zn6hVV1rGs/Byzs2ouBwz3jjnR9/0+SDUmmkkxNT0/PswxJ0mwG/jC2qgqo\neczbWlWTVTU5MTExaBmSpHOYb9AfT7IIoHs90fUfBZb2jFvS9UmSxmS+Qb8DWN+11wMP9fSvS3JJ\nkuXACmD3YCVKkgYx603NkjwAXAtckeQI8FHgTmB7ktuAZ4GbAapqb5LtwD7gFLCxqk6PqHZJUh9m\nDfqquuUcq647x/gtwJZBipIkDY/fjJWkxhn0ktQ4g16SGmfQS1LjDHpJapxBL0mNM+glqXEGvSQ1\nzqCXpMYZ9JLUOINekhpn0EtS4wx6SWqcQS9JjTPoJalxBr0kNc6gl6TGzfqEqfNJcgh4HjgNnKqq\nySSXA18ElgGHgJur6ueDlSlJmq9hHNH/ZVWtqqrJbnkTsKuqVgC7umVJ0pgMdER/DmuZeZg4wDbg\nP4B/GMF2xm7Zpq/Pe+6hO28cYiWSdG6DHtEX8K0kjyXZ0PUtrKpjXfs5YOGA25AkDWDQI/o/r6qj\nSX4f2Jnk6d6VVVVJ6mwTu18MGwDe8pa3DFiGJOlcBjqir6qj3esJ4KvAauB4kkUA3euJc8zdWlWT\nVTU5MTExSBmSpPOYd9AneX2SN77UBv4aeBLYAazvhq0HHhq0SEnS/A1y6mYh8NUkL73Pv1bVN5J8\nD9ie5DbgWeDmwcuUJM3XvIO+qn4EvOMs/T8FrhukKEnS8PjNWElqnEEvSY0z6CWpcQa9JDXOoJek\nxhn0ktQ4g16SGjeKu1eqD975UtLLxSN6SWqcQS9JjTPoJalxBr0kNc6gl6TGGfSS1DiDXpIa53X0\nFyCv4ZcuLAb9q9AgQS3pwuOpG0lq3MiO6JOsAT4LLADuqao7R7UttW/Q/8V4ykkXspEc0SdZAPwT\n8DfASuCWJCtHsS1J0vmN6oh+NXCge4A4SR4E1gL7RrQ9aWT88FqvdqMK+sXA4Z7lI8CfjGhbehm9\nWkPPD7A1Sq/0fxdju+omyQZgQ7f4QpL946rlDFcAPxl3ESM2ln3MP76sm3tF/Dm+DPv8itjPEWt6\nH7u/I/Pdxz/oZ9Cogv4osLRneUnX92tVtRXYOqLtz1uSqaqaHHcdo+Q+tuNC2E/3cXCjurzye8CK\nJMuT/A6wDtgxom1Jks5jJEf0VXUqyd8B32Tm8sr7qmrvKLYlSTq/kZ2jr6qHgYdH9f4j9Io7nTQC\n7mM7LoT9dB8HlKoa5ftLksbMWyBIUuMM+k6SNUn2JzmQZNO46xmFJEuTPJJkX5K9Se4Yd02jkmRB\nku8n+dq4axmFJG9K8qUkTyd5KsmfjrumYUvy993f0yeTPJDk0nHXNAxJ7ktyIsmTPX2XJ9mZ5Jnu\n9bJhbtOg54K6ZcMp4ENVtRK4GtjY6H4C3AE8Ne4iRuizwDeq6o+Ad9DYviZZDHwAmKyqtzNzUce6\n8VY1NJ8H1pzRtwnYVVUrgF3d8tAY9DN+fcuGqvoV8NItG5pSVceq6vGu/Twz4bB4vFUNX5IlwI3A\nPeOuZRSS/B7wF8C9AFX1q6r6xXirGomLgNcmuQh4HfBfY65nKKrqO8DPzuheC2zr2tuAm4a5TYN+\nxtlu2dBcAPZKsgy4Cnh0vJWMxGeADwMvjruQEVkOTAP/3J2euifJ68dd1DBV1VHgE8CPgWPAf1fV\nv4+3qpFaWFXHuvZzwMJhvrlBfwFK8gbgy8AHq+qX465nmJK8GzhRVY+Nu5YRugj4Y+DuqroK+B+G\n/F/9cevOUa9l5pfam4HXJ3nfeKt6edTMpZBDvRzSoJ8x6y0bWpHkYmZC/v6q+sq46xmBa4D3JDnE\nzCm4dyb5wnhLGrojwJGqeul/Y19iJvhb8lfAwaqarqr/Bb4C/NmYaxql40kWAXSvJ4b55gb9jAvi\nlg1Jwsx53aeq6lPjrmcUqmpzVS2pqmXM/Dl+u6qaOhKsqueAw0n+sOu6jvZuAf5j4Ookr+v+3l5H\nYx84n2EHsL5rrwceGuab+8xYLqhbNlwD3Ar8MMmeru8j3beY9epyO3B/d2DyI+Bvx1zPUFXVo0m+\nBDzOzNVi36eRb8gmeQC4FrgiyRHgo8CdwPYktwHPAjcPdZt+M1aS2uapG0lqnEEvSY0z6CWpcQa9\nJDXOoJekxhn0ktQ4g16SGmfQS1Lj/g+qpOxffmT4VAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb47d79bbe0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# let's look at the distribution of the transformed variable Fare\n",
    "\n",
    "plt.hist(X_train_scaled[:,2], bins=20)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The variable Age has a somewhat normal distribution after the transformation, reflecting the approximately Gaussian distribution that shows the original variable. Fare on the other had shows a skewed distribution, which is also evidenced after variable transformation in the previous plot. In fact, we can see that the standarisation of Fare, shrinks the majority of the observations towards the lowest values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.JointGrid at 0xb47db0f748>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nNv8f3tvjH3hEHB8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb47db0f710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# let's look at how transformed age looks like compared to the original variable\n",
    "\n",
    "sns.jointplot(X_train.Age, X_train_scaled[:,1], kind='kde')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The transformed variable has a good correlation with the original one."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.JointGrid at 0xb47dd46278>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb47dd461d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# let's look at how transformed Fare looks like compared to the original variable\n",
    "\n",
    "sns.jointplot(X_train.Fare, X_train_scaled[:,2], kind='kde', xlim=(0,200), ylim=(-1,3))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "The values are concentrated on the lower left side of the plot, because Fare is highly skewed: the outliers have an influence when computing the empirical mean and standard deviation which shrink the range of the feature values as shown in the left figure above.\n",
    "\n",
    "Other scaling methods account for the presence of outliers. I will discuss those in the next lectures."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  },
  "toc": {
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": "block",
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
